#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

//作业内容
//喝汽水，1瓶汽水1元，2个空瓶可以换一瓶汽水，给20元，可以喝多少汽水（编程实现）

//int main()
//{
//	int soda = 1;
//	int money = 20;
//	int empty = 0;//空瓶的数量
//	int num = 0;//一次的汽水数量
//	int sum = 0;//总共买的汽水数量
//	while (money > 0 ||( empty != 0 && empty != 1))//当汽水空瓶不等于1或者零时才能进来
//	{
//		if (money == 20)//第一次购买
//		{
//			num = money / soda;//第一次用钱购买
//			sum = num;
//			money = 0;
//			empty = num;
//		}
//		else//用空瓶子环汽水
//		{
//			num = empty / 2;//用空瓶子置换
//			empty = empty % 2;//若为奇数，则剩下一个空瓶
//			sum += num;
//			empty += num;
//		}
//	}
//	printf("%d", sum);
//	return 0;
//}

//打印菱形

//int main()
//{
//	int i = 0;
//	int mid = 7;//mid代表13个*的中间是第7个*
//	int left = 7;
//	int right = 7;
//	for (i = 0; i < 13; i++)//第一个for循环是打印每一行
//	{
//		int j = 0;
//		int x = 1;//x代表现在打印的是每行中的第x个*或者空格
//		for (j = 0; j < 13; j++)//第二个for循环是打印列
//		{
//			if (x<left || x>right)//right与left一开始都是7，是因为第一行只有第七个是*，于是在小于7，大于7都要打印空格
//			{
//					printf(" ");
//					x++;
//			}
//			else //除此之外，就打印*
//			{
//				printf("*");
//				x++;
//			}
//			
//		}
//		printf("\n");//一行打印完，就换行
//		if (i >= 6)//
//		{
//			left++;//left与right更像是*与空格的边界，格局行数的不同是边界向左或者向右移动
//			right--;
//		}
//		else
//		{
//			left--;
//			right++;
//		}
//	}
//	return 0;
//}


//求出0～100000之间的所有“水仙花数”并输出。
//
//“水仙花数”是指一个n位数，其各位数字的n次方之和确好等于该数本身，如 : 153＝1 ^ 3＋5 ^ 3＋3 ^ 3，则153是一个“水仙花数”。

//int digit(int i)//用来算几位数
//{
//	int ret = 0;
//	int x = i;
//	while (x)
//	{
//		x = x / 10;
//		ret++;
//	}
//	return ret;
//}
//
//int power(int n,int ret)//用来算n的ret次方
//{
//	int num = 1;
//	for (int j = 1; j <= ret; j++)
//	{
//		num *= n;
//	}
//	return num;
//}
//
//int judge(int i, int ret)//迭代方法
//{
//	int sum = 0;
//	int x = i;
//	for (int n = 1; n <= ret; n++)
//	{
//		x = i % 10;
//		sum += power( x , ret);
//		i = i / 10;
//	}
//	return sum;
//}
//
//int main()
//{
//	int ret = 0;
//	for (int i = 0; i <= 100000; i++)
//	{
//	     ret = digit(i);
//		 if (i == judge(i, ret))
//		 {
//			 printf("%d是水仙数\n",i);
//		 }
//	}
//	return 0;
//}

//int daffodil(int i, int ret)//递归算i的所有位数的ret次方和
//{
//	if (i > 9)
//	{
//		int x = power(i % 10, ret);
//		return daffodil(i / 10, ret) + x;
//	}
//	return power(i, ret);
//}
//
//int main()
//{
//	int ret = 0;
//	for (int i = 0; i <= 100000; i++)
//	{
//		ret = digit(i);
//		if (i == daffodil(i, ret))
//		{
//			printf("%d水仙花数\n", i);
//		}
//	}
//	return 0;
//}


//求Sn = a + aa + aaa + aaaa + aaaaa的前5项之和，其中a是一个数字，
//
//例如：2 + 22 + 222 + 2222 + 22222

int sum(int i,int n)
{
	int x = i;
	int num = 0;
	if (n > 1)//当求前n位数，n大于1时
	{
		for (int j = 1; j < n; j++)//
		{
			x = 10 * x + i;//这是默认n至少大于1
			num += x;
		}
	}
	else//当n等于1，直接返回i
	{
		return i;
	}
	return num + i;//循环里的最后的num并没有叠加个位数，返回时加上个位数i
}

int main()
{
	int a = 0;
	int n = 0;
	scanf("%d%d", &a, &n);

	printf("%d\n",sum(a,n) );

	return 0;
}


//求水仙数另解
//int main()
//{
//	for (int i = 0 ; i < 100000 ; i++)
//	{
//		//1、求当前数字i有多少位
//		int count = 0;
//		int tmp = i;
//		while (tmp != 0) {
//			count++;
//			tmp = tmp / 10;
//		}
//		//记录下来了count是多少位了
//	    // 有一个问题 就是tmp == 0了
//		//2、求153的每一位
//		tmp = i;
//		int sum = 0;
//		while (tmp != 0)
//		{
//			//pow (a, b) -> a b
//			sum += (int)pow(tmp % 10, count);//pow(x,y),求出x的y次幂，返回的是double类型，所以强制类型转换为int
//			tmp /= 10;
//		}
//		if (sum == i)
//		{
//			printf("%d\n", i);
//		}
//	}
//}